package cc.rengu.igas.smps.facade;

import cc.rengu.igas.smps.facade.request.*;
import cc.rengu.igas.smps.facade.response.*;
import cc.rengu.igas.smps.facade.result.Result;

/**
 * Created by WKF on 2020-03-24
 * 银行业务支撑交易
 *
 * @author WKF
 */
public interface BankSupService {

    /**
     * 卡状态查询
     *
     * @param bankCardStatusQueryrequest 卡状态查询请求信息
     * @return 卡状态查询应答信息
     */
    Result<BankCardStatusQueryResponse> bankCardStatusQuery(BankCardStatusQueryRequest bankCardStatusQueryrequest);

    /**
     * 本行卡密码校验
     *
     * @param bankCardPasswdVerifyRequest 密码校验请求信息
     * @return 密码校验应答信息
     */
    Result<BankCardPasswdVerifyResponse> bankCardPasswdVerify(BankCardPasswdVerifyRequest bankCardPasswdVerifyRequest);

    /**
     * 借记卡四要素校验
     *
     * @param bankFourElementVerifyRequest 本行卡四要素校验请求信息
     * @return 本行卡四要素校验应答信息
     */
    Result<BankFourElementVerifyResponse> bankFourElementVerify(BankFourElementVerifyRequest bankFourElementVerifyRequest);

    /**
     * 银行卡签约
     *
     * @param bankCardSignRequest 银行卡签约请求信息
     * @return 银行卡签约应答信息
     */
    Result<BankCardSignResponse> bankCardSign(BankCardSignRequest bankCardSignRequest);

    /**
     * 账户信息查询
     *
     * @param bankAcctInfoQueryRequest 账户信息查询请求信息
     * @return 账户信息查询应答信息
     */
    Result<BankAcctInfoQueryResponse> bankAcctInfoQuery(BankAcctInfoQueryRequest bankAcctInfoQueryRequest);

    /**
     * 贷记卡鉴权
     *
     * @param creditCardSignRightRequest 贷记卡签权请求信息
     * @return 贷记卡签权应答信息
     */
    Result<CreditCardSignRightResponse> creditCardSignRight(CreditCardSignRightRequest creditCardSignRightRequest);

}
